#ifndef STANDARDDATAADDITIONDIALOG_H
#define STANDARDDATAADDITIONDIALOG_H

#include "abstract-data-addition-dialog.h"

namespace Ui { class StandardDataAdditionDialog; }
class QAbstractItemDelegate;
class QWidget;
class AbstractSectionModel;
class ValueResult;

class StandardDataAdditionDialog : public AbstractDataAdditionDialog
{
    Q_OBJECT
public:
    explicit StandardDataAdditionDialog(QWidget *parent = 0);

public slots:
    virtual void initialize();
    virtual void setModel (AbstractSectionModel* model);
    virtual void accept();

protected slots:
    void createGui();
    void setupAppearance();
    void validateInputData();
    void finishValidateInputData(ValueResult *result);

protected:
    Ui::StandardDataAdditionDialog* ui;
    QList<QString> m_fieldNames;
    AbstractSectionModel* m_sectionModel;
    QList<QWidget*> m_fieldNameWidgets;
    QList<QWidget*> m_fieldValueWidgets;
    QVariantList m_inputData;
    QPixmap m_okPixmap;
    QPixmap m_errorPixmap;
};

#endif // STANDARDDATAADDITIONDIALOG_H
